This application generally relates to routing requests and performing queries in a computer system. More particularly, this application relates to performing adaptive partitioning techniques in a computer system when performing user queries and routing user requests.
Requests within a computer system, such as a distributed system, may be assigned to particular server nodes in accordance with load balancing techniques. These load balancing techniques may include routing requests to a particular node based on factors relating to the dynamic state of a node, such as the current processing load and availability of a server node. Additionally, static node characteristics and capabilities may also be taken into account when routing a particular user request. For example, the particular processing speed of the CPU of a particular server node may be a factor, as may be the availability of a particular type of software or hardware.
Thus, there is required a technique for routing requests within a computer system which takes into account particularities of the various hardware and software in the computer system while simultaneously providing an adaptive technique in accordance with particular user queries to provide for better utilization of computer resources.
In accordance with principles of the invention is a method for performing data query caching in a computer system. A data domain is partitioned into one or more partitions. One or more of said partitions are associated with one or more nodes in a computer system. A request for a data query is classified as pertaining to a particular one of the partitions. The request is routed to a node in the computer system in accordance with the particular one of the partitions. Data from a data query cache associated with the node is used in performing a data query included in the request.
Thus, there is provided a technique for routing requests within a computer system which takes into account particularities of the various hardware and software in the computer system while simultaneously providing an adaptive technique in accordance with particular user queries to provide for better utilization of computer resources.